package com.sunday.common.mybatis.plus.study.e5_ID;

import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.sunday.common.leaf.core.IdWorker;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * TODO
 *
 * @author sunday
 * @since 2024/11/4
 */
@Slf4j
@Component
public class CustomIdGenerator implements IdentifierGenerator {
    @Override
    public Long nextId(Object entity) {
        // 使用实体类名作为业务键，或者提取参数生成业务键
        String bizKey = entity.getClass().getName();
        log.info("生成ID : {}", bizKey);
        // 根据业务键调用分布式ID生成服务
        long id = IdWorker.getId(); // 调用分布式ID生成逻辑
        // 返回生成的ID值
        return id;
    }
}